Page({
  data: {
    point: '', // 小区名
    building: '', // 几号楼
    room: '', // 房间号
    name: '', // 房主名字
    gender: 0, // 业主性别:0-女 1-男
    mobile: '', // 手机号
    // 图片地址演示使用
    idcardFrontUrl: '', // 上传后身份证正面url
    idcardBackUrl: '', // 上传后身份证反面url
  },
  onLoad({ id, point, building, room }) {
    if (id) {
      // 修改房屋
      wx.setNavigationBarTitle({
        title: '修改房屋',
      })
      // 数据回填
      this.getDeatil(id)

    } else {
      // 新增房屋
      this.setData({
        // 对编译模式中文进行解码（不影响没有编码的参数）
        point: decodeURIComponent(point),
        building: decodeURIComponent(building),
        room
      })
    }

  },
  async getDeatil(id) {
    const { data } = await wx.http.get(`/room/${id}`)
    console.log('房屋详情：', data)
    this.setData({
      ...data
    })
  },
  async uploadImg(e) {
    // 1. 获取拍照或选择手机相册图片
    const res = await wx.chooseMedia({
      count: 1, // 只能选择1张图片
      mediaType: ['image'], // 只能选择图片类型
      sizeType: ['compressed'], // 默认为压缩模式
    })
    console.log('获取拍照或选择手机相册图片：', res.tempFiles[0])
    // 2. 上传图片到服务器
    // wx.uploadFile({
    //   url: wx.baseURL + '/upload', // 后台上传地址
    //   filePath: res.tempFiles[0].tempFilePath, // 上传图片数据
    //   name: 'file',
    //   header: {
    //     Authorization: getApp().token,
    //   },
    //   success: (result) => {
    //     const img = JSON.parse(result.data)
    //     console.log('上传结果：', img.data.url)
    //     this.setData({
    //       // e.mark.type: idcardFrontUrl | idcardBackUrl
    //       [e.mark.type]: img.data.url
    //     })

    //   },
    //   fail: () => { },
    //   complete: () => { }
    // });
    try {
      const img = await wx.utils.upload(res.tempFiles[0].tempFilePath)
      console.log('上传结果：', img.data.url)
      this.setData({
        // e.mark.type: idcardFrontUrl | idcardBackUrl
        [e.mark.type]: img.data.url
      })
    } catch (error) {
      console.log(error)
    }

  },
  async goList() {
    // 校验添加的房屋信息
    const { id, point, building, room, name, gender, mobile, idcardFrontUrl, idcardBackUrl } = this.data
    if (!/^[\u4e00-\u9fa5]{2,5}$/.test(name)) return wx.utils.toast('用户名为2-5位的中文！')
    if (!/^[1][3-8][0-9]{9}$/.test(mobile)) return wx.utils.toast('手机号格式错误！')
    if (!idcardFrontUrl || !idcardBackUrl) return wx.utils.toast('请上传身份证正反面！')
    console.log('校验通过，去调用后台接口')
    try {
      const apiData = { point, building, room, name, gender, mobile, idcardFrontUrl, idcardBackUrl }
      if (id) {
        // 修改需要追加ID参数
        apiData.id = id
      }
      await wx.http.post('/room', apiData)
      setTimeout(() => {
        wx.utils.toast('添加房屋成功！')
      }, 1000)
      // 添加成功之后跳转（reLaunch关闭之前所有页面跳转新页面）
      wx.reLaunch({
        url: '/house_pkg/pages/list/index',
      })
    } catch (error) {
      wx.utils.toast('添加失败！')
    }

  },
  removePicture(ev) {
    // 移除图片的类型（身份证正面或反面）
    // 通过type区分删除的图片
    const type = ev.mark.type
    // 说明：如果修改变量是动态的，使用[属性名变量]
    this.setData({ [type]: '' })
  },
})
